#ifndef __LINUX_MSG_QUEUE_H__
#define __LINUX_MSG_QUEUE_H__

#pragma pack(1)
typedef struct _LINUX_MSG_DATA_s_
{
    ULONG ulLen;
    UCHAR aucMsgData[0];
}LINUX_MSG_DATA_s;

typedef struct _LINUX_MSG_ITEM_s_
{
    LONG lType;
    LINUX_MSG_DATA_s stData;
}LINUX_MSG_ITEM_s;
#pragma pack()

typedef struct _LINUX_MSG_s_
{
    /* msg ID */
    INT32   iMsgQueueId;
    ULONG (*create)(INT32 , struct _LINUX_MSG_s_ *);
    ULONG (*send)(INT32, LINUX_MSG_ITEM_s *);
    ULONG (*recv)(INT32, LINUX_MSG_ITEM_s *);
    ULONG (*RemoveID)(struct _LINUX_MSG_s_ *);
}LINUX_MSG_s;

extern VOID LINUX_MSG_init(LINUX_MSG_s *pstMsg);

#endif
